Skip to content

QA: run_qa v1.6 form + ExplicitImports#64

Draft
ChrisRackauckas-Claude wants to merge 2 commits into
SciML:masterfrom
ChrisRackauckas-Claude:qa-run_qa-v1.6-explicit-imports
Draft

QA: run_qa v1.6 form + ExplicitImports#64
ChrisRackauckas-Claude wants to merge 2 commits into
SciML:masterfrom
ChrisRackauckas-Claude:qa-run_qa-v1.6-explicit-imports

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Please ignore until reviewed by @ChrisRackauckas.

Brings test/qa/qa.jl onto the SciMLTesting v1.6 run_qa form with ExplicitImports enabled.

Changes

  • test/qa/qa.jl: convert to the v1.6 form. Aqua + ExplicitImports are auto-detected from SciMLTesting's own deps; JET is opt-in via using JET. explicit_imports = true runs all six EI checks. The prior JET :typo-mode config and its rationale comment are preserved.
  • test/qa/Project.toml: bump SciMLTesting compat to "1.6". ExplicitImports is NOT added (transitive via SciMLTesting); Aqua and JET stay as direct deps (Aqua's test_ambiguities child-process needs Aqua direct; JET runs).

ExplicitImports findings

Check Result
no_implicit_imports tracked-broken (ei_broken) — see below
no_stale_explicit_imports pass
all_explicit_imports_via_owners pass
all_qualified_accesses_via_owners pass
all_qualified_accesses_are_public pass after ignoring seed!
all_explicit_imports_are_public pass

Verification

Run locally on Julia 1.10 against released SciMLTesting 1.6.0, with the local package developed by path (mirroring the run_tests folder-model QA lane):

Test Summary:     | Pass  Broken  Total      Time
Quality Assurance |   17       1     18  19m08.2s

0 Fail / 0 Error. The single Broken is the tracked no_implicit_imports.

🤖 Generated with Claude Code

ChrisRackauckas and others added 2 commits July 5, 2026 12:04
Convert test/qa/qa.jl to the SciMLTesting v1.6 run_qa form. Aqua and
ExplicitImports are auto-detected from SciMLTesting's own deps; JET is opt-in
via `using JET`. Enable ExplicitImports (`explicit_imports = true`) and run all
six EI checks.

Findings:
- no_implicit_imports: kept tracked-broken via `ei_broken = (:no_implicit_imports,)`.
  The 24 implicit names come from heavy re-exporting umbrellas (ModelingToolkit,
  DomainSets, OrdinaryDiffEq, Interpolations) whose owner packages
  (Symbolics/ModelingToolkitBase/IntervalSets/SciMLBase/CommonSolve) reshuffle names
  across releases, and two flagged names (`limit`, `domain`) are local definitions.
  Tracked in SciML#63.
- all_qualified_accesses_are_public: ignore `seed!` (Random.seed!, canonical stdlib
  API not declared `public`).
- The other four EI checks pass.

JET typo-mode config and its rationale comment are preserved. SciMLTesting compat
bumped to "1.6". ExplicitImports is not added to the QA deps (transitive via
SciMLTesting); Aqua and JET remain direct deps (Aqua.test_ambiguities child-proc
needs Aqua direct; JET runs).

Verified locally on Julia 1.10 against released SciMLTesting 1.6.0 with the local
package developed by path (mirroring the run_tests folder-model lane): Quality
Assurance 17 Pass, 1 Broken, 0 Fail, 0 Error.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…reteSolve precompile)

The Downgrade lane resolved ImplicitDiscreteSolve v2.1.1 + OrdinaryDiffEqCore
v4.3.0 on Julia 1.10. IDS 2.1.1's controller.jl:50 references
`OrdinaryDiffEqCore.CommonControllerOptions{T, NLPType}` (2 type params), but
that type only gained its second parameter in OrdinaryDiffEqCore 4.4.0 — so the
floored v4.3.0 gives `too many parameters for type`, failing precompilation of
ImplicitDiscreteSolve and cascading into ModelingToolkitBase/ModelingToolkit/
MethodOfLines/PDESystemLibrary. IDS itself fixed this in 2.1.2 by raising its
own OrdinaryDiffEqCore compat to 4.4.0, but at min-resolution the broken pair is
still reachable transitively.

Pin OrdinaryDiffEqCore >= 4.4 (test-target extra + compat) to keep the downgrade
resolve on the working pair. Verified on Julia 1.10: the downgrade resolve now
picks OrdinaryDiffEqCore 4.4.0 + ImplicitDiscreteSolve 2.1.2, and the full
test-target stack (ModelingToolkit, MethodOfLines, OrdinaryDiffEq, PDESystemLibrary)
precompiles and loads (all_systems = 427).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisRackauckas-Claude ChrisRackauckas-Claude force-pushed the qa-run_qa-v1.6-explicit-imports branch from a3f34ad to 1e2000b Compare July 5, 2026 16:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants